Technical Q&A QA1003
Enabling Macintosh style menu bars


Q: Mac OS X Aqua Swing ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ Macintosh ÉXÉ^ÉCÉãÇÃÉXÉNÉäÅ[ÉìÉÅÉjÉÖÅ[ÉoÅ[ÇégópÇ∑ÇÈÇ…ÇÕǫǧÇ∑ÇÍnjǢǢÇ≈Ç∑Ç©ÅH

A: ÉfÉtÉHÉãÉgÇÃê›íËÇ≈ÅAJava ÉAÉvÉäÉPÅ[ÉVÉáÉìÇà Swing ÉÅÉjÉÖÅ[ÉoÅ[ÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉEÉCÉìÉhÉEÇ…îzíuÇ≥ÇÍÇ‹Ç∑ÅBJava Çà com.apple.macos.useScreenMenuBar=true ÉvÉçÉpÉeÉBÇíËã`Ç∑ÇÈÇΔÅAÉAÉvÉäÉPÅ[ÉVÉáÉìë§Ç≈LJÅusetJMenuBarÅvÇégǡǃ JMenuBar ÇΔ JFrame ÇΔÇÃä÷òAïtÇØÇçsÇ¢ÅAJFrame è„Ç…èdó  java.awt.MenuBar ÇîzíuÇ∑ÇÈÇΩÇflÇ…ÅusetMenuBarÅvÇégópǵǃǢǻǢèÍçáÇÕÅAJMenuBar Çã≠êßìIÇ… Aqua ÇÃÉãÉbÉN & ÉtÉBÅ[ÉãÇ…ïœçXǵǃÅAMac OS X Ç≈ÉXÉNÉäÅ[ÉìÉÅÉjÉÖÅ[ÉoÅ[ÇÃÇÊǧDžï\é¶Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBǪǧÇ≈Ç»ÇØÇÍÇŒÅAJMenuBar ÇÕëºÇÃÉRÉìÉ|Å[ÉlÉìÉgÇΔìØólÇÃï˚ñ@Ç≈ÉEÉCÉìÉhÉEì‡Ç…ï\é¶Ç≥ÇÍÇÈí èÌÇà Swing ÉRÉìÉ|Å[ÉlÉìÉgÇ…Ç∑ǨNjÇπÇÒÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ SwingSet2 ÇÃÇÊǧǻÉAÉvÉåÉbÉgÇΔǵǃLJé¿çsÇ≈Ç´ÇÈèÍçáÇÕÅAÅuÉäÉXÉg 1.ÅvÇ…é¶Ç∑ÇÊǧǻèåèÇ…âûÇ∂ÇΩèàóùÇ™ïKóvÇ…Ç»ÇËÇ‹Ç∑ÅBÇΔǢǧÇÃLJÅAÉAÉvÉåÉbÉgÇ™ÉXÉNÉäÅ[ÉìÉÅÉjÉÖÅ[ÉoÅ[ÇéùǬDZÇΔÇ™Ç≈Ç´ÇÈÇÃÇÕÅAǪÇÍÇ™ìΔé©Çà JFrame ì‡Ç…ï\é¶Ç≥ÇÍÇÈèÍçáÇ…å¿ÇÁÇÍÇÈÇΩÇflÇ≈Ç∑ÅB

	      
    // ÉAÉvÉåÉbÉgÇ™ÉuÉâÉEÉUÉEÉCÉìÉhÉEì‡Ç…ï\é¶Ç≥ÇÍÇÈèÍçáÇÕ Null
    JFrame myFrame;
                  
                  
    JMenuBar myMenu; 
    
    //... myFrame ÇΔ myMenu ÇçÏê¨Ç∑ÇÈ
                
    if (myFrame == null)
        add(myMenuBar, BorderLayout.NORTH);
    else
        myFrame.setJMenuBar(myMenuBar); 
                
                  

ÉäÉXÉg 1. ÉAÉvÉåÉbÉgÇΔǵǃLJï\é¶Ç≈Ç´ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ JMenuBar ÇÃà íuÇèåèèàóùÇ∑ÇÈ

ÉfÉtÉHÉãÉgÇÃê›íËÇ≈ÅADZÇÃÉvÉçÉpÉeÉBÇÕÅAÉeÉìÉvÉåÅ[ÉgÇ©ÇÁçÏê¨Ç≥ÇÍÇΩ Project Builder Java ÉAÉvÉäÉPÅ[ÉVÉáÉìÉvÉçÉWÉFÉNÉgÇà MRJApp.properties ÉtÉ@ÉCÉãÇÃíÜÇ≈ true Ç…ê›íËÇ≥ÇÍǃǢNjÇ∑ÅBÇ‹ÇΩÅADZÇÃÉvÉçÉpÉeÉBÇÕÅAÇ∑Ç≈Ç…ÉpÉbÉPÅ[ÉWâªÇ≥ÇÍǃǢÇÈ Java ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…í«â¡Ç≥ÇÍÇÈêVǵǢÉAÉvÉäÉPÅ[ÉVÉáÉìÇà MRJAppBuilder ÇÃíÜÇ≈ê›íËǵÇΩÇËÅAç≈èâÇà Aqua JMenuBar ÇçÏê¨Ç∑ÇÈëOÇ…ÉvÉçÉOÉâÉÄÇ…ÇÊǡǃê›íËÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

ÉrÉãÉhÇ≥ÇÍÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇà MRJAppBuilder ÇÃíÜÇ≈DZÇÃÉvÉçÉpÉeÉBÇê›íËÇ∑ÇÈÇ…ÇÕÅAÅuJava PropertiesÅvÉpÉlÉãÇÃÉvÉçÉpÉeÉBÇÃÉäÉXÉgDžDZÇÃÉvÉçÉpÉeÉBÇí«â¡ÇµÇ‹Ç∑ÅB

ä˘ë∂ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìì‡Ç≈DZÇÃÉvÉçÉpÉeÉBÇê›íËÇ∑ÇÈÇ…ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÉpÉbÉPÅ[ÉWÇà Contents/Resources/ ÉtÉHÉãÉ_ì‡Ç…džÇÈ MRJApp.properties ÉeÉLÉXÉgÉtÉ@ÉCÉãDžDZÇÃÉvÉçÉpÉeÉBÇí«â¡Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBFinder Ç≈ ÉAÉvÉäÉPÅ[ÉVÉáÉìÉpÉbÉPÅ[ÉWÇäJÇ≠Ç…ÇÕÅAcontrol ÉLÅ[ÇâüǵǻǙÇÁÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉAÉCÉRÉìÇÉNÉäÉbÉNǵǃÉRÉìÉeÉLÉXÉgÉÅÉjÉÖÅ[Çï\é¶ÇµÅAÅuShow Package ContentsÅvÉÅÉjÉÖÅ[çÄñ⁄ÇëIÇ—Ç‹Ç∑ÅBÇ‹ÇΩÅAMRJApp.properties ÉtÉ@ÉCÉãÇÕïWèÄìIÇ»ÉeÉLÉXÉgÉGÉfÉBÉ^Ç≈ï“èWÇ≈Ç´Ç‹Ç∑ÅB


[2001 îN 1 åé 31 ì˙]